﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


/// Clase entidad para encapsular/desencapsular datos de los requerimientos no funcionales, ademas de alguna informacion sobre algun cambio realizado.
public class RequerimientoNoFuncional
{


    /// El identificador del Requerimiento no Funcional
    private int id;

    /// La propiedad para acceso publico al identificador del Requerimiento Funcional
    public int Id
    {
        get { return id; }
        set { id = value; }
    }

    /// El nombre del Requerimiento Funcional
    private string nombreRequerimiento;

    /// La propiedad para acceso publico al nombre del requerimiento
    public string NombreRequerimiento
    {
        get { return nombreRequerimiento; }
        set { nombreRequerimiento = value; }
    }

    /// La descripcion del requerimiento funcional
    private string descripcion;

    /// La propiedad para acceso publico a la descripcion del requerimiento funcional
    public string Descripcion
    {
        get { return descripcion; }
        set { descripcion = value; }
    }

    /// Los Modulos en los cuales influye el Requerimiento No funcional
    private DataTable modulos;

    /// La propiedad para acceso publico a los Modulos en los cuales influye el Requerimiento No funcional
    public DataTable Modulos
    {
        get { return modulos; }
        set { modulos = value; }
    }

    /// La fecha en que se realizo un determinado cambio a algun requerimiento funcional
    private DateTime fechaCambio;

    /// La propiedad para acceso publico a la fecha en que se realizo un determinado cambio a algun requerimiento funcional
    public DateTime FechaCambio
    {
        get { return fechaCambio; }
        set { fechaCambio = value; }
    }

    /// El id del Recurso Humano que realizo un determinado cambio a algun requerimiento funcional
    private int fuenteCambio;

    /// La propiedad para acceso publico al id del Recurso Humano que realizo un determinado cambio a algun requerimiento funcional
    public int FuenteCambio
    {
        get { return fuenteCambio; }
        set { fuenteCambio = value; }
    }

    /// La descripcion de algun cambio a un requerimiento funcional
    private string descripcionCambio;

    /// La propiedad para acceso publico a la descripcion de algun cambio a un requerimiento funcional
    public string DescripcionCambio
    {
        get { return descripcionCambio; }
        set { descripcionCambio = value; }
    }

    /// <summary>
    /// Constructor sin parametros para un objeto requerimiento funcional
    /// </summary>
    public RequerimientoNoFuncional()
    {
    }

    /// El identificador del proyecto del que depende el requerimiento no funcional
    private int dependeDeP;

    /// El identificador del proyecto del que depende el requerimiento no funcional
    public int DependeDeP
    {
        get { return dependeDeP; }
        set { dependeDeP = value; }
    }


    /// Constructor con parametros para el objeto requerimiento funcional
    public RequerimientoNoFuncional(int id, String nombreRequerimiento, String descripcion, DataTable modulos, DateTime fechaCambio, int fuenteCambio, String descripcionCambio, int dependeDeP)
    {
        crearRequerimientoNoFuncional(id, nombreRequerimiento, descripcion, modulos, fechaCambio, fuenteCambio, descripcionCambio, dependeDeP);
    }

    /// Metodo para inicializar los datos de un  requerimiento funcional
    public void crearRequerimientoNoFuncional(int id, String nombreRequerimiento, String descripcion, DataTable modulos, DateTime fechaCambio, int fuenteCambio, String descripcionCambio, int dependeDeP)
    {
        Id = id;
        NombreRequerimiento = nombreRequerimiento;
        Descripcion = descripcion;
        Modulos = modulos;
        FechaCambio = fechaCambio;
        FuenteCambio = fuenteCambio;
        DescripcionCambio = descripcionCambio;
        DependeDeP = dependeDeP;
    }

    public void crearRequerimientoNoFuncionalSV(int id, String nombreRequerimiento, String descripcion)
    {
        Id = id;
        NombreRequerimiento = nombreRequerimiento;
        Descripcion = descripcion;
    }
}